aboutsummaryrefslogtreecommitdiff
path: root/pages/anime/[...id].js
diff options
context:
space:
mode:
Diffstat (limited to 'pages/anime/[...id].js')
-rw-r--r--pages/anime/[...id].js33
1 files changed, 24 insertions, 9 deletions
diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js
index dc385f9..a2c84a4 100644
--- a/pages/anime/[...id].js
+++ b/pages/anime/[...id].js
@@ -20,6 +20,7 @@ import Modal from "../../components/modal";
import { signIn, useSession } from "next-auth/react";
import AniList from "../../components/media/aniList";
import ListEditor from "../../components/listEditor";
+import { closestMatch } from "closest-match";
const query = `
query ($username: String, $status: MediaListStatus) {
@@ -143,7 +144,6 @@ const infoQuery = `query ($id: Int) {
export default function Info({ info, color }) {
const { data: session } = useSession();
const [data, setData] = useState(null);
- // const [infos, setInfo] = useState(null);
const [episode, setEpisode] = useState(null);
const [loading, setLoading] = useState(false);
const [progress, setProgress] = useState(0);
@@ -151,8 +151,6 @@ export default function Info({ info, color }) {
const [stall, setStall] = useState(false);
const [domainUrl, setDomainUrl] = useState("");
- // console.log(info);
-
const [showAll, setShowAll] = useState(false);
const [open, setOpen] = useState(false);
@@ -240,10 +238,28 @@ export default function Info({ info, color }) {
if (!data || data?.episodes?.length === 0) {
const res = await fetch(
- `https://api.consumet.org/meta/anilist/info/${id[0]}?provider=9anime`
+ `https://api.moopa.my.id/anime/gogoanime/${info.title.romaji}`
);
const datas = await res.json();
- if (res.status === 500) {
+
+ if (datas) {
+ const release = datas.results.map((i) => i.releaseDate);
+ const match = closestMatch(info.startDate.year, release);
+ const filter = datas.results.find((i) => i.releaseDate === match);
+
+ // const found = filter.find((i) => i.title === info.title.romaji);
+
+ // setLog(found);
+
+ if (filter) {
+ const res = await fetch(
+ `https://api.moopa.my.id/anime/gogoanime/info/${filter.id}`
+ );
+ const dataA = await res.json();
+ setEpisode(dataA.episodes);
+ // setLog(dataA);
+ }
+ } else if (res.status === 500) {
setEpisode(null);
setEpiStatus("error");
setError(datas.message);
@@ -254,7 +270,6 @@ export default function Info({ info, color }) {
// backgroundColor: `${data?.color || "#ffff"}`,
// color: textColor,
// });
- setStall(true);
} else {
setEpisode(data.episodes);
}
@@ -323,7 +338,7 @@ export default function Info({ info, color }) {
}
}
fetchData();
- }, [id, session?.user?.name]);
+ }, [id, session?.user?.name, info]);
function handleOpen() {
setOpen(true);
@@ -718,7 +733,7 @@ export default function Info({ info, color }) {
data && (
<div className="flex h-[640px] flex-col gap-5 scrollbar-thin scrollbar-thumb-[#1b1c21] scrollbar-thumb-rounded-full overflow-y-scroll hover:scrollbar-thumb-[#2e2f37]">
{epiStatus === "ok" ? (
- episode?.length !== 0 ? (
+ episode?.length !== 0 && episode ? (
episode?.map((epi, index) => {
return (
<div
@@ -726,7 +741,7 @@ export default function Info({ info, color }) {
className="flex flex-col gap-3 px-2"
>
<Link
- href={`/anime/watch/${epi.id}/${data.id}/${
+ href={`/anime/watch/${epi.id}/${info.id}/${
stall ? `9anime` : ""
}`}
className={`text-start text-sm lg:text-lg ${